文章目录
一、使用stringstream(简单粗暴)1.stringstream2.istringstream和ostringstream
二 使用函数1 字符串转成数值3.char数组转换成数值3.数值转换为字符串
三 总结
下面会介绍两种字符串和数值相互转换方法:stringstream和函数
一、使用stringstream(简单粗暴)
C++中有ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream头文件
下面是这几个类的继承关系图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200306125331469.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjcwMTU3,size_16,color_FFFFFF,t_70)
1.stringstream
#include
#include
using namespace std;
int main()
{
int i = 1;
float f = 1.2;
double d = 1.23;
//number => string
stringstream ss1;
ss1
string str = "123.345";
int i = stoi(str);
float f = stof(str);
double d = stod(str);
cout
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
long int li1, li2, li3, li4;
li1 = strtol(szNumbers, &pEnd, 10);
li2 = strtol(pEnd, &pEnd, 16);
li3 = strtol(pEnd, &pEnd, 2);
li4 = strtol(pEnd, NULL, 0);
printf("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
system("pause");
return 0;
}
//输出 60c0c0(16) = 6340800(10) -1101110100110100100000(2) = -3624224(10) 0x6fffff(0自己识别) = 7340031 (10)
The decimal equivalents are: 2001, 6340800, -3624224 and 7340031
3.数值转换为字符串
#include头文件中:inline string to_string(val); 具体如下:
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);
#include
#include
using namespace std;
int main()
{
int i = 1;
float f = 1.2;
double d = 1.23;
cout |